package day07Exercise;

import java.util.Random;
import java.util.Scanner;

public class Day07StandardExercise01 {
    public static void main(String[] args) {
        /**
         * 需求：验证码的生成，生成一个4位验证码（大写字母，小写字母，数字）
         */
        String code=generateVerificationCode(4);
        System.out.println("4位验证码是："+code);

        /**
         * 猜数字小游戏
         * 训练目标: while(true)自造死循环
         */
        Scanner scanner=new Scanner(System.in);
        int num=(int)(Math.random()*1000+1);//生成1-1000的随机数，赋值给要猜的数字
        System.out.println(num);//作弊
        while(true){//自造死循环
            System.out.println("猜吧");
            int guessing=scanner.nextInt();
            if (guessing>num){
                System.out.println("猜大了");
            }else if (guessing<num){
                System.out.println("猜小了");
            }else{
                System.out.println("猜对了");
                break;//跳出循环
            }
        }
        /**
         * 需求:----------常见面试题
         *   找到2到100之间的所有素数(质数)
         *   素数:除了1和它本身外，不能被其它任何自然数整除的数
         *   7/( 2....6)
         *
         */
        for (int num1=2;num1<=100;num1++){
            boolean flag=true;//假设2-100之间的数都为素数
            for (int i=2;i<=num1/2;i++){//只要整除到num的一半，再往后算，一定是有余数的，没有意义
                if (num1%i==0){//能被整除，num就不是素数
                    flag=false;
                    break;//跳出for循环
                }
            }
            if (flag){
                System.out.print(num1+"\t");
            }
        }
        System.out.println();

           /**
   需求：
     机票价格按照淡季旺季、头等舱、商务舱和经济舱收费，
     输入机票原价、月份和头等舱、商务舱或经济舱，
     其中旺季（5-10月）头等舱9折，商务舱85折，经济舱8折，
     淡季（11月到来年4月）头等舱7折，商务舱65折，经济舱6折，
     最终输出机票价格
    */
        System.out.println("请输入机票原价：");
           double price=scanner.nextDouble();
        System.out.println("请输入月份：");
        int mouth=scanner.nextInt();
        System.out.println("请选择舱位：1.头等舱2.商务舱3.经济舱");
        int type=scanner.nextInt();
        double totalprice=calAirPrice(price,mouth,type);
        System.out.println("最终价格为："+totalprice);
        /**
         * 需求:
         * <<主持人大赛>>有6名评委给选手打分，要求分数范围为0到100之间的整数。
         * 选手的最后得分为：去掉最高分、最低分后的4个评委的平均分
         */
        double[] scores=genrateScore();
        double totalScore=totalScore(scores);
        System.out.println("总分为："+totalScore);
        double avgScores=avgScore(scores);
        System.out.println("平均分为:"+avgScores);











    }
    public static String generateVerificationCode(int len){
        String code="";
        Random rand=new Random();
        for (int i=0;i<len;i++){
            char[] chs={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
                    'p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G',
                    'H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z',
                    '0','1','2','3','4','5','6','7','8','9'};//生成验证码的字符
//            int index=(int)(Math.random()*chs.length);//随机生成数组下标0-61
            int index=rand.nextInt(chs.length);//使用Random()类生成数组索引随机值
            code+=chs[index];
        }
        return code;
    }


    public static double calAirPrice(double price,int mouth,int type){
        if (mouth>=5 && mouth<=10){
            switch (type){
                case 1:
                    price=price*0.9;
                    break;
                case 2:
                    price=price*0.85;
                    break;
                case 3:
                    price=price*0.8;
                    break;
            }
        }else {
            switch (type){
                case 1:
                    price=price*0.7;
                    break;
                case 2:
                    price=price*0.65;
                    break;
                case 3:
                    price=price*0.6;
                    break;
            }
        }
        return price;
    }

    public static double[] genrateScore(){
        Scanner scanner=new Scanner(System.in);
        double[] scores=new double[6];
        for (int i=0;i<6;i++){
            System.out.println("第"+(i+1)+"位评委的分数：");
            scores[i]=scanner.nextDouble();


        }
        return scores;
    }
    public static double totalScore(double[] scores){
        double totalScore=0.0;
        double max=scores[0];
        double min=scores[0];
        for (int i=0;i<scores.length;i++){
            if(scores[i]>max){
                max=scores[i];
            }
            if (scores[i]<min){
                min=scores[i];
            }
            totalScore+=scores[i];
        }
        return totalScore-max-min;
    }

    public static double avgScore(double[] scores){
        double avgScore=0;
        double totalScore=totalScore(scores);
        avgScore=totalScore/(scores.length-2);
        return avgScore;

    }

}
